package de.hauschild.gmltracer.gml.impl.value.geometry.tier1;

import de.hauschild.gmltracer.gml.Token;
import de.hauschild.gmltracer.gml.impl.control.FunctionToken;
import de.hauschild.gmltracer.gml.impl.value.geometry.GmlSurfaceFunction;
import de.hauschild.gmltracer.gml.impl.value.geometry.ShapeToken;
import de.hauschild.gmltracer.tracer.SurfaceFunction;
import de.hauschild.gmltracer.tracer.impl.tier1.Sphere;

public class SphereToken extends ShapeToken<Sphere> {

  public SphereToken(final FunctionToken surfaceFunction) {
    this(new GmlSurfaceFunction(surfaceFunction));
  }

  public SphereToken(final SurfaceFunction surfaceFunction) {
    super(new Sphere(surfaceFunction));
  }

  @Override
  public Token cloneToken() {
    return new SphereToken(getValue().getSurfaceFunction());
  }
}